Дано число n, а также цифры a и b. Замените в числе n каждое вхождение цифры a на цифру b.
Вход. Три целых числа n (1
≤ n ≤ 109), a, b
(0 ≤ a, b ≤ 9).
Выход. Выведите полученное число после произведенной замены. Ведущие нули
выводить не следует.
Пример
входа |
Пример
выхода |
123118 1 5 |
523558 |
РЕШЕНИЕ
строки
Анализ алгоритма
Прочитаем число n как строку, а цифры a и b
как символы. Заменим в строке n все
вхождения символа a на символ b. Затем выведем полученную строку, удалив
ведущие нули. Если итоговая строка состоит только из нулей, следует вывести один ноль.
Отметим, что
результирующее число может не помещаться в тип int. Например, если n = 1000000000 (109), a = 1, b =
9, то
результатом будет число 9000000000 (9 * 109).
Реализация алгоритма
Число n как строку храним в массиве s.
char s[100];
Читаем число n как строку, числа a и b как символы.
scanf("%s
%c %c",s,&a,&b);
Заменяем в строке s все вхождения символа a на символ b.
for
(i = 0; i < strlen(s); i++)
if (s[i] ==
a) s[i] = b;
Преобразуем строку s в число res типа long long.
res = atoll(s);
Выводим ответ.
printf("%lld\n", res);
Реализация алгоритма –
string
Читаем входные данные: s – строка, a и b
– символы.
cin >> s >> a >> b;
Заменяем в строке s все вхождения символа a на символ b.
replace(s.begin(), s.end(), a, b);
Преобразуем строку s в число res типа long long.
res = stoll(s);
Выводим ответ.
cout << res << endl;
Java реализация
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
String s = con.next();
char a = con.next().charAt(0);
char b = con.next().charAt(0);
s = s.replace(a,b);
int flag = 0;
for(int i = 0; i < s.length(); i++)
if (s.charAt(i) != '0')
{
s = s.substring(i);
flag = 1;
break;
}
if (flag == 0) s = "0";
System.out.println(s);
con.close();
}
}
Python реализация
Читаем входные данные в виде строк.
s, a, b = input().split()
Заменяем в строке s
все вхождения символа a на символ b.
s = s.replace(a, b)
Преобразуем
строку s в целое число и выводим результат.
print(int(s))